{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "174e5a2a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:47:52.892310Z",
     "iopub.status.busy": "2023-05-27T03:47:52.891528Z",
     "iopub.status.idle": "2023-05-27T03:48:27.997374Z",
     "shell.execute_reply": "2023-05-27T03:48:27.996252Z"
    },
    "id": "wHsFZo6akD8M",
    "outputId": "ad2dfb82-1745-4b95-cb4e-6e839c1f5d72",
    "papermill": {
     "duration": 35.114793,
     "end_time": "2023-05-27T03:48:27.999825",
     "exception": false,
     "start_time": "2023-05-27T03:47:52.885032",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "\n",
    "transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])\n",
    "batch_size = 8\n",
    "\n",
    "device=\"cuda\"\n",
    "\n",
    "#uncomment when using colab or local cpu\n",
    "# train_dataset = torchvision.datasets.cifar.CIFAR100(root='cifar100', train=True, transform=transform, download=True)\n",
    "# test_dataset = torchvision.datasets.cifar.CIFAR100(root='cifar100', train=False, transform=transform, download=True)\n",
    "# train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=2)\n",
    "# test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=2)\n",
    "\n",
    "#uncomment when using kaggle\n",
    "\n",
    "train_dataset = torchvision.datasets.ImageFolder(\"/kaggle/input/cifar100/CIFAR100/TRAIN\", transform=transform)\n",
    "\n",
    "test_dataset = torchvision.datasets.ImageFolder(\"/kaggle/input/cifar100/CIFAR100/TEST\", transform=transform)\n",
    "\n",
    "train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=2)\n",
    "\n",
    "test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ae3fc3f0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:28.011099Z",
     "iopub.status.busy": "2023-05-27T03:48:28.009447Z",
     "iopub.status.idle": "2023-05-27T03:48:28.478331Z",
     "shell.execute_reply": "2023-05-27T03:48:28.477206Z"
    },
    "id": "VjkCK8NykPMb",
    "outputId": "a059791d-0629-4634-9dfa-5615889ddfa3",
    "papermill": {
     "duration": 0.480182,
     "end_time": "2023-05-27T03:48:28.484436",
     "exception": false,
     "start_time": "2023-05-27T03:48:28.004254",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([8])\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# functions to show an image\n",
    "\n",
    "\n",
    "def imshow(img):\n",
    "    img = img / 2 + 0.5     # unnormalize\n",
    "    npimg = img.numpy()\n",
    "    plt.imshow(np.transpose(npimg, (1, 2, 0)))\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "# get some random training images\n",
    "dataiter = iter(train_loader)\n",
    "# images, labels = dataiter.next()\n",
    "images, labels = next(dataiter)\n",
    "\n",
    "# show images\n",
    "imshow(torchvision.utils.make_grid(images))\n",
    "# print labels\n",
    "print(labels.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ea77a971",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:28.496719Z",
     "iopub.status.busy": "2023-05-27T03:48:28.496364Z",
     "iopub.status.idle": "2023-05-27T03:48:28.501603Z",
     "shell.execute_reply": "2023-05-27T03:48:28.500666Z"
    },
    "papermill": {
     "duration": 0.01387,
     "end_time": "2023-05-27T03:48:28.503714",
     "exception": false,
     "start_time": "2023-05-27T03:48:28.489844",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import math\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.nn import init"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "835cc7ef",
   "metadata": {
    "papermill": {
     "duration": 0.004887,
     "end_time": "2023-05-27T03:48:28.513644",
     "exception": false,
     "start_time": "2023-05-27T03:48:28.508757",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "## CA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5bc1e509",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:28.525316Z",
     "iopub.status.busy": "2023-05-27T03:48:28.524734Z",
     "iopub.status.idle": "2023-05-27T03:48:28.534850Z",
     "shell.execute_reply": "2023-05-27T03:48:28.533968Z"
    },
    "papermill": {
     "duration": 0.018355,
     "end_time": "2023-05-27T03:48:28.537079",
     "exception": false,
     "start_time": "2023-05-27T03:48:28.518724",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "class ChannelAttention(nn.Module):\n",
    "    def __init__(self, in_channels, reduction_ratio=16):\n",
    "        super(ChannelAttention, self).__init__()\n",
    "        \n",
    "        self.avg_pool = nn.AdaptiveAvgPool2d(1)\n",
    "        self.fc = nn.Sequential(\n",
    "            nn.Linear(in_channels, in_channels // reduction_ratio),\n",
    "            nn.ReLU(inplace=True),\n",
    "            nn.Linear(in_channels // reduction_ratio, in_channels),\n",
    "            nn.Sigmoid()\n",
    "        )\n",
    "        \n",
    "    def forward(self, x):\n",
    "        # 输入x的尺寸：[batch_size, in_channels, height, width]\n",
    "        \n",
    "        # 全局平均池化，输出尺寸：[batch_size, in_channels, 1, 1]\n",
    "        feat = self.avg_pool(x)\n",
    "        \n",
    "        # 压缩通道维度，输出尺寸：[batch_size, in_channels // reduction_ratio, 1, 1]\n",
    "        feat = feat.view(feat.size(0), -1)\n",
    "        \n",
    "        # 全连接层，输出尺寸：[batch_size, in_channels]\n",
    "        feat = self.fc(feat)\n",
    "        \n",
    "        # 将通道权重应用到输入特征图上，输出尺寸：[batch_size, in_channels, height, width]\n",
    "        feat = torch.unsqueeze(feat, 2)\n",
    "        feat = torch.unsqueeze(feat, 3)\n",
    "        feat = x * feat\n",
    "        \n",
    "        return feat\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "67f57cbf",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:28.548783Z",
     "iopub.status.busy": "2023-05-27T03:48:28.548513Z",
     "iopub.status.idle": "2023-05-27T03:48:28.584401Z",
     "shell.execute_reply": "2023-05-27T03:48:28.583494Z"
    },
    "id": "1mY2iwmCkcpA",
    "papermill": {
     "duration": 0.044344,
     "end_time": "2023-05-27T03:48:28.586545",
     "exception": false,
     "start_time": "2023-05-27T03:48:28.542201",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "def conv3x3(in_planes, out_planes, stride=1):\n",
    "    \"3x3 convolution with padding\"\n",
    "    return nn.Conv2d(\n",
    "        in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=False\n",
    "    )\n",
    "\n",
    "\n",
    "class BasicBlock(nn.Module):\n",
    "    expansion = 1\n",
    "\n",
    "    def __init__(\n",
    "        self, inplanes, planes, stride=1, downsample=None, use_triplet_attention=False\n",
    "    ):\n",
    "        super(BasicBlock, self).__init__()\n",
    "        self.conv1 = conv3x3(inplanes, planes, stride)\n",
    "        self.bn1 = nn.BatchNorm2d(planes)\n",
    "        self.relu = nn.ReLU(inplace=True)\n",
    "        self.conv2 = conv3x3(planes, planes)\n",
    "        self.bn2 = nn.BatchNorm2d(planes)\n",
    "        self.downsample = downsample\n",
    "        self.stride = stride\n",
    "\n",
    "        if use_triplet_attention:\n",
    "            self.triplet_attention = TripletAttention(planes, 16)\n",
    "        else:\n",
    "            self.triplet_attention = None\n",
    "\n",
    "    def forward(self, x):\n",
    "        residual = x\n",
    "\n",
    "        out = self.conv1(x)\n",
    "        out = self.bn1(out)\n",
    "        out = self.relu(out)\n",
    "\n",
    "        out = self.conv2(out)\n",
    "        out = self.bn2(out)\n",
    "\n",
    "        if self.downsample is not None:\n",
    "            residual = self.downsample(x)\n",
    "\n",
    "        if not self.triplet_attention is None:\n",
    "            out = self.triplet_attention(out)\n",
    "\n",
    "        out += residual\n",
    "        out = self.relu(out)\n",
    "\n",
    "        return out\n",
    "\n",
    "\n",
    "class Bottleneck(nn.Module):\n",
    "    expansion = 4\n",
    "\n",
    "    def __init__(\n",
    "        self, inplanes, planes, stride=1, downsample=None, use_triplet_attention=False\n",
    "    ):\n",
    "        super(Bottleneck, self).__init__()\n",
    "        self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=False)\n",
    "        self.bn1 = nn.BatchNorm2d(planes)\n",
    "        self.conv2 = nn.Conv2d(\n",
    "            planes, planes, kernel_size=3, stride=stride, padding=1, bias=False\n",
    "        )\n",
    "        self.bn2 = nn.BatchNorm2d(planes)\n",
    "        self.conv3 = nn.Conv2d(planes, planes * 4, kernel_size=1, bias=False)\n",
    "        self.bn3 = nn.BatchNorm2d(planes * 4)\n",
    "        self.relu = nn.ReLU(inplace=True)\n",
    "        self.downsample = downsample\n",
    "        self.stride = stride\n",
    "\n",
    "        if use_triplet_attention:\n",
    "            self.triplet_attention = TripletAttention(planes * 4, 16)\n",
    "        else:\n",
    "            self.triplet_attention = None\n",
    "\n",
    "    def forward(self, x):\n",
    "        residual = x\n",
    "\n",
    "        out = self.conv1(x)\n",
    "        out = self.bn1(out)\n",
    "        out = self.relu(out)\n",
    "\n",
    "        out = self.conv2(out)\n",
    "        out = self.bn2(out)\n",
    "        out = self.relu(out)\n",
    "\n",
    "        out = self.conv3(out)\n",
    "        out = self.bn3(out)\n",
    "\n",
    "        if self.downsample is not None:\n",
    "            residual = self.downsample(x)\n",
    "\n",
    "        if not self.triplet_attention is None:\n",
    "            out = self.triplet_attention(out)\n",
    "\n",
    "        out += residual\n",
    "        out = self.relu(out)\n",
    "\n",
    "        return out\n",
    "\n",
    "\n",
    "class ResNet(nn.Module):\n",
    "    def __init__(self, block, layers, network_type, num_classes, att_type=None):\n",
    "        self.inplanes = 64\n",
    "        super(ResNet, self).__init__()\n",
    "        self.network_type = network_type\n",
    "        # different model config between ImageNet and CIFAR\n",
    "        if network_type == \"ImageNet\":\n",
    "            self.conv1 = nn.Conv2d(\n",
    "                3, 64, kernel_size=7, stride=2, padding=3, bias=False\n",
    "            )\n",
    "            self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)\n",
    "            self.avgpool = nn.AvgPool2d(7)\n",
    "        else:\n",
    "            self.conv1 = nn.Conv2d(\n",
    "                3, 64, kernel_size=3, stride=1, padding=1, bias=False\n",
    "            )\n",
    "\n",
    "        self.bn1 = nn.BatchNorm2d(64)\n",
    "        self.relu = nn.ReLU(inplace=True)\n",
    "\n",
    "        self.layer1 = self._make_layer(block, 64, layers[0], att_type=att_type)\n",
    "        #self.ca_1 = ChannelAttention(64)\n",
    "        self.layer2 = self._make_layer(\n",
    "            block, 128, layers[1], stride=2, att_type=att_type\n",
    "        )\n",
    "        #self.ca_1 = ChannelAttention(128)\n",
    "        self.layer3 = self._make_layer(\n",
    "            block, 256, layers[2], stride=2, att_type=att_type\n",
    "        )\n",
    "        #self.ca_1 = ChannelAttention(256)\n",
    "        self.layer4 = self._make_layer(\n",
    "            block, 512, layers[3], stride=2, att_type=att_type\n",
    "        )\n",
    "\n",
    "        self.fc = nn.Linear(512 * block.expansion, num_classes)\n",
    "\n",
    "        init.kaiming_normal_(self.fc.weight)\n",
    "        for key in self.state_dict():\n",
    "            if key.split(\".\")[-1] == \"weight\":\n",
    "                if \"conv\" in key:\n",
    "                    init.kaiming_normal_(self.state_dict()[key], mode=\"fan_out\")\n",
    "                if \"bn\" in key:\n",
    "                    if \"SpatialGate\" in key:\n",
    "                        self.state_dict()[key][...] = 0\n",
    "                    else:\n",
    "                        self.state_dict()[key][...] = 1\n",
    "            elif key.split(\".\")[-1] == \"bias\":\n",
    "                self.state_dict()[key][...] = 0\n",
    "\n",
    "    def _make_layer(self, block, planes, blocks, stride=1, att_type=None):\n",
    "        downsample = None\n",
    "        if stride != 1 or self.inplanes != planes * block.expansion:\n",
    "            downsample = nn.Sequential(\n",
    "                nn.Conv2d(\n",
    "                    self.inplanes,\n",
    "                    planes * block.expansion,\n",
    "                    kernel_size=1,\n",
    "                    stride=stride,\n",
    "                    bias=False,\n",
    "                ),\n",
    "                nn.BatchNorm2d(planes * block.expansion),\n",
    "            )\n",
    "\n",
    "        layers = []\n",
    "        layers.append(\n",
    "            block(\n",
    "                self.inplanes,\n",
    "                planes,\n",
    "                stride,\n",
    "                downsample,\n",
    "                use_triplet_attention=att_type == \"TripletAttention\",\n",
    "            )\n",
    "        )\n",
    "        self.inplanes = planes * block.expansion\n",
    "        for i in range(1, blocks):\n",
    "            layers.append(\n",
    "                block(\n",
    "                    self.inplanes,\n",
    "                    planes,\n",
    "                    use_triplet_attention=att_type == \"TripletAttention\",\n",
    "                )\n",
    "            )\n",
    "\n",
    "        return nn.Sequential(*layers)\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.conv1(x)\n",
    "        x = self.bn1(x)\n",
    "        x = self.relu(x)\n",
    "        if self.network_type == \"ImageNet\":\n",
    "            x = self.maxpool(x)\n",
    "\n",
    "        x = self.layer1(x)\n",
    "        x = self.layer2(x)\n",
    "        x = self.layer3(x)\n",
    "        x = self.layer4(x)\n",
    "\n",
    "        if self.network_type == \"ImageNet\":\n",
    "            x = self.avgpool(x)\n",
    "        else:\n",
    "            x = F.avg_pool2d(x, 4)\n",
    "        x = x.view(x.size(0), -1)\n",
    "        x = self.fc(x)\n",
    "        return x\n",
    "\n",
    "\n",
    "def ResidualNet(network_type, depth, num_classes, att_type):\n",
    "\n",
    "    assert network_type in [\n",
    "        \"ImageNet\",\n",
    "        \"CIFAR10\",\n",
    "        \"CIFAR100\",\n",
    "    ], \"network type should be ImageNet or CIFAR10 / CIFAR100\"\n",
    "    assert depth in [18, 34, 50, 101], \"network depth should be 18, 34, 50 or 101\"\n",
    "\n",
    "    if depth == 18:\n",
    "        model = ResNet(BasicBlock, [2, 2, 2, 2], network_type, num_classes, att_type)\n",
    "\n",
    "    elif depth == 34:\n",
    "        model = ResNet(BasicBlock, [3, 4, 6, 3], network_type, num_classes, att_type)\n",
    "\n",
    "    elif depth == 50:\n",
    "        model = ResNet(Bottleneck, [3, 4, 6, 3], network_type, num_classes, att_type)\n",
    "\n",
    "    elif depth == 101:\n",
    "        model = ResNet(Bottleneck, [3, 4, 23, 3], network_type, num_classes, att_type)\n",
    "\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "203478fd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:28.598787Z",
     "iopub.status.busy": "2023-05-27T03:48:28.598470Z",
     "iopub.status.idle": "2023-05-27T03:48:31.875204Z",
     "shell.execute_reply": "2023-05-27T03:48:31.872725Z"
    },
    "id": "otA9CIgdnXfW",
    "outputId": "cc48fb07-5d0f-4446-9244-8b2052ef8020",
    "papermill": {
     "duration": 3.285773,
     "end_time": "2023-05-27T03:48:31.877746",
     "exception": false,
     "start_time": "2023-05-27T03:48:28.591973",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ResNet(\n",
      "  (conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "  (relu): ReLU(inplace=True)\n",
      "  (layer1): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer2): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer3): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer4): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (fc): Linear(in_features=512, out_features=100, bias=True)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "device=\"cuda\"\n",
    "net=ResidualNet(\"CIFAR100\",18,100,None).to(device)\n",
    "print(net)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a033193e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:31.890374Z",
     "iopub.status.busy": "2023-05-27T03:48:31.890046Z",
     "iopub.status.idle": "2023-05-27T03:48:31.896466Z",
     "shell.execute_reply": "2023-05-27T03:48:31.895541Z"
    },
    "id": "35VI01P_kqal",
    "outputId": "e9a6a4ce-3d52-4e8d-b58a-f7727f7c745b",
    "papermill": {
     "duration": 0.01538,
     "end_time": "2023-05-27T03:48:31.898893",
     "exception": false,
     "start_time": "2023-05-27T03:48:31.883513",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5000\n"
     ]
    }
   ],
   "source": [
    "import torch.optim as optim\n",
    "\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.Adam(net.parameters(), lr=0.0005)\n",
    "print(len(train_loader))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "364747e7",
   "metadata": {
    "id": "ck0do7nrmNTQ",
    "papermill": {
     "duration": 0.005497,
     "end_time": "2023-05-27T03:48:31.909912",
     "exception": false,
     "start_time": "2023-05-27T03:48:31.904415",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "dd321b9c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:31.922803Z",
     "iopub.status.busy": "2023-05-27T03:48:31.922096Z",
     "iopub.status.idle": "2023-05-27T03:48:31.934618Z",
     "shell.execute_reply": "2023-05-27T03:48:31.933794Z"
    },
    "id": "xKlx2mCxlE02",
    "papermill": {
     "duration": 0.02106,
     "end_time": "2023-05-27T03:48:31.936487",
     "exception": false,
     "start_time": "2023-05-27T03:48:31.915427",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from tqdm import tqdm\n",
    "def train(epoch):\n",
    "    net.train()\n",
    "    # Loop over each batch from the training set\n",
    "    train_tqdm = tqdm(train_loader, desc=\"Epoch \" + str(epoch))\n",
    "    for batch_idx, (data, target) in enumerate(train_tqdm):\n",
    "        # Copy data to GPU if needed\n",
    "        data = data.to(device)\n",
    "        target = target.to(device)\n",
    "        # Zero gradient buffers\n",
    "        optimizer.zero_grad()\n",
    "        # Pass data through the network\n",
    "        output = net(data)\n",
    "        # Calculate loss\n",
    "        loss = criterion(output, target)\n",
    "        # Backpropagate\n",
    "        loss.backward()\n",
    "        # Update weights\n",
    "        optimizer.step()  # w - alpha * dL / dw\n",
    "        train_tqdm.set_postfix({\"loss\": \"%.3g\" % loss.item()})\n",
    "\n",
    "def validate(lossv,top1AccuracyList,top5AccuracyList):\n",
    "    net.eval()\n",
    "    val_loss = 0\n",
    "    top1Correct = 0\n",
    "    top5Correct = 0\n",
    "    for index,(data, target) in enumerate(test_loader):\n",
    "        data = data.to(device)\n",
    "        labels = target.to(device)\n",
    "        outputs = net(data)\n",
    "        val_loss += criterion(outputs, labels).data.item()\n",
    "        _, top1Predicted = torch.max(outputs.data, 1)\n",
    "        top5Predicted = torch.topk(outputs.data, k=5, dim=1, largest=True)[1]\n",
    "        top1Correct += (top1Predicted == labels).cpu().sum().item()\n",
    "        label_resize = labels.view(-1, 1).expand_as(top5Predicted)\n",
    "        top5Correct += torch.eq(top5Predicted, label_resize).view(-1).cpu().sum().float().item()\n",
    "\n",
    "    val_loss /= len(test_loader)\n",
    "    lossv.append(val_loss)\n",
    "\n",
    "    top1Acc=100*top1Correct / len(test_loader.dataset)\n",
    "    top5Acc=100*top5Correct / len(test_loader.dataset)\n",
    "    top1AccuracyList.append(top1Acc)\n",
    "    top5AccuracyList.append(top5Acc)\n",
    "    \n",
    "    print('\\nValidation set: Average loss: {:.4f}, Top1Accuracy: {}/{} ({:.0f}%) Top5Accuracy: {}/{} ({:.0f}%)\\n'.format(\n",
    "        val_loss, top1Correct, len(test_loader.dataset), top1Acc,top5Correct, len(test_loader.dataset), top5Acc))\n",
    "#     accuracy = 100. * correct.to(torch.float32) / len(testloader.dataset)\n",
    "#     accv.append(accuracy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "041f7b05",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T03:48:31.949255Z",
     "iopub.status.busy": "2023-05-27T03:48:31.948599Z",
     "iopub.status.idle": "2023-05-27T04:29:14.875785Z",
     "shell.execute_reply": "2023-05-27T04:29:14.874557Z"
    },
    "id": "pTWz8B3Dl9gu",
    "outputId": "7aed78c3-6ee9-4b39-d339-02b00a81db23",
    "papermill": {
     "duration": 2452.915308,
     "end_time": "2023-05-27T04:29:24.857443",
     "exception": false,
     "start_time": "2023-05-27T03:48:31.942135",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 0: 100%|██████████| 5000/5000 [02:57<00:00, 28.23it/s, loss=3.83]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.9216, Top1Accuracy: 2786/10000 (28%) Top5Accuracy: 5849.0/10000 (58%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 1: 100%|██████████| 5000/5000 [01:44<00:00, 47.63it/s, loss=2.42]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.2904, Top1Accuracy: 3944/10000 (39%) Top5Accuracy: 7145.0/10000 (71%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 2: 100%|██████████| 5000/5000 [01:45<00:00, 47.20it/s, loss=2.57]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 1.9922, Top1Accuracy: 4644/10000 (46%) Top5Accuracy: 7797.0/10000 (78%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 3: 100%|██████████| 5000/5000 [01:46<00:00, 46.78it/s, loss=1.34]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 1.7886, Top1Accuracy: 5203/10000 (52%) Top5Accuracy: 8101.0/10000 (81%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 4: 100%|██████████| 5000/5000 [01:47<00:00, 46.41it/s, loss=2.01]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 1.7834, Top1Accuracy: 5247/10000 (52%) Top5Accuracy: 8177.0/10000 (82%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 5: 100%|██████████| 5000/5000 [01:46<00:00, 46.85it/s, loss=0.966]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 1.8307, Top1Accuracy: 5368/10000 (54%) Top5Accuracy: 8238.0/10000 (82%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 6: 100%|██████████| 5000/5000 [01:46<00:00, 46.78it/s, loss=1.04]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 1.9560, Top1Accuracy: 5442/10000 (54%) Top5Accuracy: 8193.0/10000 (82%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 7: 100%|██████████| 5000/5000 [01:44<00:00, 48.02it/s, loss=0.134]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.1637, Top1Accuracy: 5304/10000 (53%) Top5Accuracy: 8058.0/10000 (81%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 8: 100%|██████████| 5000/5000 [01:45<00:00, 47.40it/s, loss=0.278]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.2781, Top1Accuracy: 5304/10000 (53%) Top5Accuracy: 8049.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 9: 100%|██████████| 5000/5000 [01:45<00:00, 47.41it/s, loss=0.246]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.4816, Top1Accuracy: 5247/10000 (52%) Top5Accuracy: 7952.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 10: 100%|██████████| 5000/5000 [01:43<00:00, 48.21it/s, loss=0.348]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.5745, Top1Accuracy: 5257/10000 (53%) Top5Accuracy: 7947.0/10000 (79%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 11: 100%|██████████| 5000/5000 [01:46<00:00, 46.84it/s, loss=0.0263]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.5482, Top1Accuracy: 5265/10000 (53%) Top5Accuracy: 8002.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 12: 100%|██████████| 5000/5000 [01:45<00:00, 47.19it/s, loss=0.133]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.7479, Top1Accuracy: 5274/10000 (53%) Top5Accuracy: 7956.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 13: 100%|██████████| 5000/5000 [01:43<00:00, 48.12it/s, loss=0.0704]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.7307, Top1Accuracy: 5318/10000 (53%) Top5Accuracy: 7987.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 14: 100%|██████████| 5000/5000 [01:47<00:00, 46.57it/s, loss=0.113]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.8099, Top1Accuracy: 5371/10000 (54%) Top5Accuracy: 7942.0/10000 (79%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 15: 100%|██████████| 5000/5000 [01:44<00:00, 47.64it/s, loss=0.0217]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.8269, Top1Accuracy: 5311/10000 (53%) Top5Accuracy: 7960.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 16: 100%|██████████| 5000/5000 [01:43<00:00, 48.28it/s, loss=0.0124]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.8121, Top1Accuracy: 5321/10000 (53%) Top5Accuracy: 7954.0/10000 (80%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 17: 100%|██████████| 5000/5000 [01:45<00:00, 47.60it/s, loss=0.428]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.9132, Top1Accuracy: 5326/10000 (53%) Top5Accuracy: 7916.0/10000 (79%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 18: 100%|██████████| 5000/5000 [01:43<00:00, 48.40it/s, loss=0.0403]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 2.9739, Top1Accuracy: 5295/10000 (53%) Top5Accuracy: 7905.0/10000 (79%)\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Epoch 19: 100%|██████████| 5000/5000 [01:50<00:00, 45.44it/s, loss=0.0288]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Validation set: Average loss: 3.1009, Top1Accuracy: 5176/10000 (52%) Top5Accuracy: 7805.0/10000 (78%)\n",
      "\n",
      "Finished Training\n"
     ]
    }
   ],
   "source": [
    "lossv = []\n",
    "top1AccuracyList = []   # top1准确率列表\n",
    "top5AccuracyList = []   # top5准确率列表\n",
    "max_epoch = 20\n",
    "for epoch in range(max_epoch):  # loop over the dataset multiple times\n",
    "    train(epoch)\n",
    "    with torch.no_grad():\n",
    "        validate(lossv,top1AccuracyList,top5AccuracyList)\n",
    "        \n",
    "print('Finished Training')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2987bc52",
   "metadata": {
    "id": "5qEPmaZO1NU3",
    "papermill": {
     "duration": 9.510198,
     "end_time": "2023-05-27T04:29:43.944526",
     "exception": false,
     "start_time": "2023-05-27T04:29:34.434328",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "674017d7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2023-05-27T04:30:03.542585Z",
     "iopub.status.busy": "2023-05-27T04:30:03.542189Z",
     "iopub.status.idle": "2023-05-27T04:30:04.412528Z",
     "shell.execute_reply": "2023-05-27T04:30:04.411539Z"
    },
    "id": "Z1-D3LkhvzDq",
    "outputId": "e29901ea-e0b2-4141-f18e-a6431171ec0f",
    "papermill": {
     "duration": 10.831284,
     "end_time": "2023-05-27T04:30:04.414777",
     "exception": false,
     "start_time": "2023-05-27T04:29:53.583493",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'validation top5 accuracy')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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DLJ2EELg97//PXbs2IHvvvsO4eHhHVrPiRMnoNVqu7i69jMYDDh9+nSrNcTGxlp6B5rt27cPo0ePhkwms0eJzWzatAkBAQGYMWOGza919P4ODw+HRqOx2qd1dXVISUnB2LFjW31da+9DW6/pauYQO3/+PL799tsO/SEjhMBPP/3k0PcAAEpKSpCfn99mHc6wz80++ugj3H777Rg5cqTNr+2OfX6r7z+n+Jzb3D2kF3rqqaeEWq0WycnJoqCgwPKorq62LLNq1SqxePFiy/P/+Z//ETt37hTnzp0Tp06dEqtWrRIAxBdffGG3up9//nmRnJwssrKyRGpqqpg5c6ZQqVQiJyenxZqzsrKEp6eneO6550RmZqb46KOPhEwmE//85z/tVnNTRqNRhIaGipUrVzab5yz7u6KiQpw4cUKcOHFCABDr168XJ06csPTue+2114RarRY7duwQ6enpYuHChUKr1Qq9Xm9Zx+LFi8WqVassz//73/8Kd3d38dprr4nTp0+L1157TUilUpGammqXuuvr68W9994rgoODxU8//WT1mTcYDK3WnZiYKPbs2SMuXrwoTpw4IR555BEhlUrFDz/80GV136r2iooK8fzzz4vDhw+L7OxscfDgQREbGyv69+/v1PvcrLy8XHh6eoqNGze2uA5H7PP2fP85+nPOIGsHAC0+Nm3aZFkmISFBjB8/3vL89ddfFwMHDhRKpVL07dtXjBs3TuzatcuudT/wwANCq9UKmUwmgoKCxNy5c0VGRkarNQshRHJyshg1apSQy+UiLCys1f9Q9rB3714BQJw9e7bZPGfZ3+Zu/zc/EhIShBCNXZPXrFkjNBqNUCgU4u677xbp6elW6xg/frxlebPPP/9cREVFCZlMJgYPHtzlgdxW3dnZ2a1+5g8ePNhq3UuXLhWhoaFCLpcLf39/ER8fLw4fPtyldd+q9urqahEfHy/8/f2FTCYToaGhIiEhQeTl5Vmtw9n2udl7770nPDw8RFlZWYvrcMQ+b8/3n6M/57yNCxERuTSeIyMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpfGICMiIpf2/wEHbi9ZQORgawAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "# 绘制曲线\n",
    "plt.figure(figsize=(5, 3))\n",
    "plt.plot(np.arange(1, max_epoch + 1), lossv)\n",
    "plt.title('validation loss')\n",
    "\n",
    "plt.figure(figsize=(5,3))\n",
    "plt.plot(np.arange(1, max_epoch + 1), top1AccuracyList)\n",
    "plt.title('validation top1 accuracy')\n",
    "\n",
    "plt.figure(figsize=(5,3))\n",
    "plt.plot(np.arange(1, max_epoch + 1), top5AccuracyList)\n",
    "plt.title('validation top5 accuracy')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a188366c",
   "metadata": {
    "id": "fyWGvlbHup5w",
    "papermill": {
     "duration": 9.415057,
     "end_time": "2023-05-27T04:30:23.420105",
     "exception": false,
     "start_time": "2023-05-27T04:30:14.005048",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.10"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 2574.391123,
   "end_time": "2023-05-27T04:30:36.146619",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2023-05-27T03:47:41.755496",
   "version": "2.4.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
